# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

example_execs = {
    'parquet-low-level-example': {
        'sources': files('low_level_api/reader_writer.cc'),
        'include_dir': include_directories('low_level_api'),
    },
    'parquet-low-level-example2': {
        'sources': files('low_level_api/reader_writer2.cc'),
        'include_dir': include_directories('low_level_api'),
    },
    'parquet-arrow-example': {
        'sources': files('parquet_arrow/reader_writer.cc'),
    },
    'parquet-stream-api-example': {
        'sources': files('parquet_stream_api/stream_reader_writer.cc'),
    },
}

if needs_parquet_encryption
    example_execs += {
        'parquet-encryption-example': {
            'sources': files('low_level_api/encryption_reader_writer.cc'),
            'include_dir': include_directories('low_level_api'),
        },
        'parquet-encryption-example-all-crypto-options': {
            'sources': files(
                'low_level_api/encryption_reader_writer_all_crypto_options.cc',
            ),
            'include_dir': include_directories('low_level_api'),
        },
    }
endif

foreach key, val : example_execs
    executable(
        key,
        sources: val['sources'],
        include_directories: val.get('include_dir', []),
        dependencies: [arrow_dep, parquet_dep],
    )
endforeach
